package com.huaxin.device.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.device.dto.ResponseResult;
import com.huaxin.device.dto.request.AlarmThresholdRuleCreateReqDTO;
import com.huaxin.device.dto.request.AlarmThresholdRulePageListReqDTO;
import com.huaxin.device.dto.request.AlarmThresholdRuleUpdateReqDTO;
import com.huaxin.device.models.AlarmThresholdRule;

import java.util.List;

public interface AlarmThresholdRuleService extends IService<AlarmThresholdRule> {
    /**
     * 创建报警阈值规则
     */
    ResponseResult<AlarmThresholdRule> create(AlarmThresholdRuleCreateReqDTO in);

    /**
     * 根据ID查询报警阈值规则
     */
    AlarmThresholdRule getByRuleId(String id);

    /**
     * 更新报警阈值规则
     */
    ResponseResult<String> update(AlarmThresholdRuleUpdateReqDTO in);

    /**
     * 删除报警阈值规则
     */
    ResponseResult<String> delete(String id);

    /**
     * 启用报警阈值规则
     */
    ResponseResult<String> enable(String id);

    /**
     * 禁用报警阈值规则
     */
    ResponseResult<String> disable(String id);

    /**
     * 分页查询报警阈值规则
     */
    ResponseResult<IPage<AlarmThresholdRule>> pageQuery(AlarmThresholdRulePageListReqDTO in);

    /**
     * 根据模板ID查询报警阈值规则
     */
    List<AlarmThresholdRule> getByTemplateId(String templateId);
}
